|
Программируем по-русски
|
Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку. Издатель Глагола
|
(******************************************************************************) (**) ОТДЕЛ ПроLL+; (****************************************************************************** * НАЗНАЧЕНИЕ: * разложение симметрической положительно определенной матрицы A на две * треугольные матрицы L и L', где L - это нижняя треугольная матрица, * а L' - матрица, транспонированная к L * * ПРИМЕЧАНИЯ: * Исходная матрица записана в файле "ПроМатр4.дан". * В этом файле 1-я строка содержит размер матрицы (число строк и столбцов), * а последующие строки содержат значения элементов матрицы. ******************************************************************************) ИСПОЛЬЗУЕТ Матем ИЗ "...\Отделы\Числа\", Матр ИЗ "...\Отделы\Числа\", МатрВВ ИЗ "...\Отделы\Числа\", Читать ИЗ "...\Отделы\Обмен\", Вывод ИЗ "...\Отделы\Обмен\"; (******************************************************************************) ЗАДАЧА Перемножить(L-,A+:Матр.Вид); (* A=L*L' *) ПЕР i,j,k,n:ЦЕЛ; m:Матем.Вещ; УКАЗ n:=РАЗМЕР(L); ОТ i:=0 ДО n-1 ВЫП ОТ j:=0 ДО i ВЫП m:=0; ОТ k:=0 ДО j ВЫП m:=m+L[i,k]*L[j,k] КОН; A[i,j]:=m; ЕСЛИ i # j ТО A[j,i]:=m КОН КОН КОН КОН Перемножить; (******************************************************************************) ЗАДАЧА Голова; ПЕР n:ЦЕЛ; (* размер матрицы *) A:Матр.Доступ; (* исходная матрица *) L:Матр.Доступ; (* матрица L *) п:Читать.Поток; УКАЗ п:=МатрВВ.ОткрытьПоток("ПроМатр4.дан"); A:=МатрВВ.ЧитатьМатр(п); Читать.Закрыть(п); n:=РАЗМЕР(A^); СОЗДАТЬ(L,n,n); Вывод.Цепь("^Исходная матрица:^"); МатрВВ.ВыводМатр("%10.5f",A^); ЕСЛИ Матр.РазложитьНаLL(A^,L^) = 0 ТО Вывод.Цепь("^L матрица:^"); МатрВВ.ВыводМатр("%10.5f",L^); Перемножить(L^,A^); Вывод.Цепь("^L*L' матрица:^"); МатрВВ.ВыводМатр("%10.5f",A^) ИНАЧЕ Вывод.Цепь("^Матрица не является положительно определённой!^") КОН КОН Голова; (******************************************************************************) УКАЗ Голова КОН ПроLL. ▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
|
|